import genericApi from "@/util/genericApi.js";
import { getJwt } from "@/api/jwt.js";

// 关键修正：服务名设为空字符串，避免生成多余的路径前缀
const SERVICE_NAME = "";
const BASE_URL = "/api/goods"; // 与后端路径完全匹配

// 1. 商品查询接口（GET）
async function getGoods(params) {
    // 参数顺序：service（空字符串）、endpoint、params
    return genericApi.get(SERVICE_NAME, `${BASE_URL}/pass`, params);
}

// 2. 商品新增接口（PUT）
async function createGood(data) {
    // 参数顺序：service（空字符串）、endpoint、data
    return genericApi.put(SERVICE_NAME, `${BASE_URL}/pass`, data);
}

// 3. 商品修改接口（POST）- 解决404的核心：使用空字符串作为service
async function updateGood(data) {
    return genericApi.post(SERVICE_NAME, `${BASE_URL}/pass`, data);
}

// 4. 商品批量删除接口（DELETE）
async function deleteGoods(ids) {
    const idsArray = Array.isArray(ids) ? ids : [ids];
    // DELETE方法参数顺序：service、endpoint、params、data
    return genericApi.delete(SERVICE_NAME, `${BASE_URL}/pass`, {}, idsArray);
}

// 5. 商品单条查询接口（POST）
async function getGoodById(id) {
    return genericApi.post(SERVICE_NAME, `${BASE_URL}`, { id });
}

// 6. 库存扣减接口（POST）
async function deductGoodStock(goodChanges) {
    return genericApi.post(SERVICE_NAME, `${BASE_URL}/deleteByUids`, goodChanges);
}

// 7. 商品图片上传接口（POST）
async function uploadGoodPortrait(formData) {
    // 注意：不需要手动设置Content-Type，axios会自动处理multipart/form-data
    return genericApi.post(SERVICE_NAME, `${BASE_URL}/upload`, formData);
}

// 8. 分类/品牌下拉接口（GET）
async function getCategoryAndBrand(params) {
    return genericApi.get(SERVICE_NAME, "/api/option/options", params);
}

export {
    getGoods,
    createGood,
    updateGood,
    deleteGoods,
    getGoodById,
    deductGoodStock,
    uploadGoodPortrait,
    getCategoryAndBrand,
};
